package demo05;

public class ClassMethod {

    //关于包名 类名 类 相关的方法
    public static <T1,T2> void ref_class(Class<T1> subClazz,Class<T2> superClazz){

        //获取类所在包名
        System.out.println(subClazz.getPackage());

        //获取包名
        System.out.println(subClazz.getPackage().getName());

        //获取路径
        System.out.println(subClazz.getName());

        //获取类名本身
        System.out.println(subClazz.getSimpleName());

        try {
            T1 t = subClazz.newInstance();
        } catch (InstantiationException e) {
            throw new RuntimeException(e);
        } catch (IllegalAccessException e) {
            throw new RuntimeException(e);
        }

        //所有访问修饰符总和
        System.out.println(String.class.getModifiers());

    }

    /**
     * 关于属性的方法
     */
    public static <T> void ref_field(Class<T> subClazz,Class<T> superClazz){

    }

    /**
     * 关于构造方法的方法
     */
    public static <T> void ref_constructor(Class<T> subClazz,Class<T> superClazz){


    }

    /**
     * 关于普通方法的方法
     */
    public static <T> void ref_method(Class<T> subClazz,Class<T> superClazz) {


    }

    public static void main(String[] args) {

        Class superClazz = Biology.class;
        Class subClazz = Person.class;

        ref_class(subClazz,superClazz);
    }


}
